package org.nf.web.config;

import cn.hutool.core.util.ClassUtil;

import java.util.Set;

/**
 * @Author czl
 * @Date 2024-05-13
 * 配置对象（也是所有配置的根）
 * 作用是将yml解析的数据封装到这个对象中
 */
public class Configure {
    /**
     * 这里的字段命名必须与yml中节点名称相同
     * 这里的server对应的是父级节点的名字
     */
    private ServerConfig server = new ServerConfig();

    /**
     * 扫描的控制器class集合
     */
    private Set<Class<?>> classes;

    public Set<Class<?>> getClasses() {
        return classes;
    }

    /**
     * 执行扫描，根据启动类所在的包以及所有的子包开始扫描
     * @param mainClass
     */
    public void scan(Class<?> mainClass){
        classes = ClassUtil.scanPackage(mainClass.getPackageName());
    }

    public ServerConfig getServer() {
        return server;
    }

    public void setServer(ServerConfig server) {
        this.server = server;
    }

}
